-- 这些是xb_native功能的lua版本
-- v1.1.0.0
-- 由XBridge官方团队维护
-- 作者: lition
-- xb_lua文档:https://gitee.com/DreamLition/XBridge/tree/master/LUA
-- (C)XBridge 2021

local function on_ws_pack(s,p)
	if(p.cause == 'join')then
		send(1,p.params.sender..'加入了'..s)
	elseif(p.cause == 'left')then
		send(1,p.params.sender..'离开了'..s)
	elseif(p.cause == 'chat')then
		send(1,'['..s..']<'..p.params.sender..'>'..p.params.text)
	elseif(p.cause == 'runcmdfeedback')then
		send(0,'[cmd]['..s..'] '..p.params.feedback)
	end
end
listen(1,on_ws_pack)  --1为监听ws收包

local function submsg(m,i)
	return tostring(string.sub(m,i,string.len(m)-1))
end
local function str(s)
	return tostring(s)
end
local function in_server(s)
	for k,v in pairs(getcfg('servers'))do
		if(v == str(s))then
			return true
		end
	end
	return false
end
local function is_admin(q)
	for k,v in pairs(getcfg('admins'))do
		if(q == v)then
			return true
		end
	end
	return false
end
local function on_message(t)
	if(t.msg[1] ~= nil)then
		local msg = ""
		for k,v in pairs(t.msg)do
			msg = msg..v..' '
		end
		if(t.msg[1] == 'chat')then
			send(0,submsg(msg,5))
			sendtext('all',submsg(msg,5))
		elseif(t.msg[1] == '/cmd')then
			if(is_admin(t.sender))then
				if(#t.msg >2)then
					if(in_server(t.msg[2]))then
						runcmd(str(t.msg[2]),submsg(msg,string.len(t.msg[1]..t.msg[2])+2))
						send(0,'指令'..submsg(msg,string.len(t.msg[1]..t.msg[2])+3)..'已发送')
					else
						send(0,'[CQ:at,qq='..str(t.sender)..'] 没有名为'..t.msg[2]..'的服务器')
					end
				else
					send(0,'[CQ:at,qq='..str(t.sender)..'] 无法找到指令参数')
				end
			else
				send(0,'[CQ:at,qq='..str(t.sender)..'] 你没有权限执行命令')
			end
		end
	end
end
listen(0,on_message)